$(function () {
    //定义一个全局变量对象
    // 将来筛选和分页都可以修改
    let query = {
        pagenum: 1,       //页码值
        pagesize: 5,     //每页显示多少条数据
        cate_id: '',      //文章分类的 Id
        state: ''         //文章的状态
    }

    //需求1 获取数据 渲染页面 封装函数
    let layer = layui.layer
    initAticleList()
    function initAticleList() {
        axios({
            method: 'get',
            url: '/my/article/list',
            params: query
        }).then(function (res) {
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            // console.log(res.data);
            //渲染页面
            let ary = []
            res.data.data.forEach(ele => {
                ary.push(`
                     <tr>
                        <td>${ele.title}</td>
                        <td>${ele.cate_name}</td>
                        <td>${dateFormat(ele.pub_date)}</td>
                        <td>${ele.state}</td>
                        <td>
                            <a href='/article/art_edit.html?id=${ele.Id}' class="layui-btn layui-btn-xs">编辑</a>
                            <button data-id='${ele.Id}' class="btn_del layui-btn layui-btn-xs layui-btn-danger">删除</button>
                        </td>
                    </tr>
                `)
            })
            let str = ary.join();
            $('tbody').empty().html(str)
            // 赋值之后做分页
            pageRender(res.data.total)
        })
    }

    //需求2
    // 初始化文章分类
    let form = layui.form
    initArtCateList()
    function initArtCateList() {
        axios({
            method: 'get',
            url: '/my/article/cates',
        }).then(function (res) {
            // console.log(res.data);
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            let ary = ['<option value="">请选择文章类别</option>']
            res.data.data.forEach(ele => {
                ary.push(`
                         <option value="${ele.Id}">${ele.name}</option>
                `)
                let str = ary.join()
                $('[name="cate_id"]').empty().html(str)
                //form表单同步渲染
                form.render()
            })
        })
    }

    //需求3 筛选
    $('form').on('submit', function (e) {
        e.preventDefault()
        query.cate_id = $('[name="cate_id"]').val()
        query.state = $('[name="state"]').val()
        // 重新渲染文章列表
        initAticleList()
    })
    //需求4 分页
    var laypage = layui.laypage;
    function pageRender(total) {
        //执行一个laypage实例
        laypage.render({
            elem: 'pageBox' //注意，这里的 test1 是 ID，不用加 # 号
            , count: total, //数据总数，从服务端得到
            limit: query.pagesize,
            curr: query.pagenum,
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            limits: [2, 3, 5, 10],
            jump: function (obj, first) {
                //obj包含了当前分页的所有参数，比如：
                // console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
                // console.log(obj.limit); //得到每页显示的条数

                //首次不执行
                if (!first) {
                    //do something
                    query.pagesize = obj.limit
                    query.pagenum = obj.curr

                    // 重新渲染文章列表
                    initAticleList()
                }
            }
        });
    }
    //需求5 删除
    $('tbody').on('click', '.btn_del', function () {
        // 获取按钮的自定义属性值 文章的id
        let id = $(this).attr('data-id')
        // 发送ajax请求
        axios({
            method: 'get',
            url: '/my/article/delete/' + id
        }).then(function (res) {
            // console.log(res.data);
            if (res.data.status != 0) {
                return layer.msg(res.data.message)
            }
            layer.msg('删除成功')
            //当页面中只剩下一条数据的时候 并且要删除的时候 pagenum自减1
            if ($('.btn_del').length == 1 && query.pagenum >= 2) {
                query.pagenum--
            }
            // 重新渲染文章列表
            initAticleList()
        })

    })

    //需求6 编辑功能


})